SQL中MINUS的用法与UNION的用法

您所在的位置:网站首页 sql minus union区别 SQL中MINUS的用法与UNION的用法

SQL中MINUS的用法与UNION的用法

2023-08-28 19:49| 来源: 网络整理| 查看: 265

一:MINUS指令

其是运用在两个 SQL 语句上。它先找出第一个 SQL 语句所产生的结果,然后看这些结果有没有在第二个 SQL语句的结果中。如果有的话,那第一个SQL结果数据就被去除,而不会在最后的结果中出现。如果第一个 SQL 语句所产生的结果并没有存在于第二个 SQL 语句所产生的结果内,那第一个SQL结果数据就被保留,会在最后的结果中出现。MINUS 的语法如下:[SQL 语句 1]MINUS[SQL 语句 2]举例:Store_Information 表格store_name  Sales  Date Los Angeles  $1500  Jan-05-1999 San Diego  $250  Jan-07-1999 Los Angeles  $300  Jan-08-1999 Boston  $700  Jan-08-1999  Internet Sales 表格 Date  Sales Jan-07-1999  $250 Jan-10-1999  $535 Jan-11-1999  $320 Jan-12-1999  $750  我们用以下的 SQL 语句:SELECT Date FROM Store_InformationMINUSSELECT Date FROM Internet_Sales结果:DateJan-05-1999Jan-08-1999

解释:"Jan-05-1999", "Jan-07-1999", and "Jan-08-1999" 是 "SELECT Date FROM Store_Information" 所产生的结果。在这里面,"Jan-07-1999" 是存在于 "SELECT Date FROM Internet_Sales" 所产生的结果中。因此 "Jan-07-1999" 并不在最后的结果中。请注意,在 MINUS 指令下,不同的值只会被列出一次。

与MINUS功能类似的有第一个SELECT   表1.*    FROM     表1,   表2WHERE    表1.主键=表2.主键(+)  AND   表2.主键   IS   NULL;第二个select   *   from   表1   where   not   exists(select   1   from   表2   where   表1.主键=表2.主键);第三个select   *   from   表1   where   表1.主键 not   in (select  主键   from   表2);当然效率较高的还是MINUS。

二:UNION 指令

其是将两个 SQL 语句的结果合并起来。从这个角度来看, UNION 跟 JOIN 有些许类似,因为这两个指令都可以由多个表格中撷取资料。UNION 的一个限制是两个 SQL 语句所产生的栏位需要是同样的资料种类。另外,当我们用 UNION这个指令时,我们只会看到不同的资料值 (类似 SELECT DISTINCT)。UNION 的语法如下:[SQL 语句 1]UNION[SQL 语句 2]

举例:表格: Store_Informationstore_name       Sales             DateLos Angeles      $1500          Jan-05-1999San Diego        $250           Jan-07-1999Los Angeles      $300           Jan-08-1999Boston           $700           Jan-08-1999表格: Internet SalesDate             SalesJan-07-1999      $250Jan-10-1999      $535Jan-11-1999      $320Jan-12-1999      $750

我们用以下的 SQL 语句:SELECT Date FROM Store_InformationUNIONSELECT Date FROM Internet_Sales结果:DateJan-05-1999Jan-07-1999Jan-08-1999Jan-10-1999Jan-11-1999Jan-12-1999

说明:如果我们在任何一个 SQL 语句 (或是两句都一起) 用 "SELECT DISTINCT Date" 的话,那我们会得到完全一样的结果。名字可以不一样。但是,数据类型必须相似。也就是说主表(第一个表)第一列是varchar(100),副表(第一个以外的所有表)的第一列都要是varchar(100&&



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3